Skip to content

Add LAB06: Deploying with Crossplane#60

Draft
Copilot wants to merge 2 commits intomainfrom
copilot/add-lab06-deploying-with-crossplane
Draft

Add LAB06: Deploying with Crossplane#60
Copilot wants to merge 2 commits intomainfrom
copilot/add-lab06-deploying-with-crossplane

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 1, 2026

Adds an optional specialization lab covering Crossplane as a Kubernetes-native control plane for cloud infrastructure — completing the trilogy of cloud provisioning approaches alongside ASO (LAB03) and Terranetes (LAB05). Prerequisites: LAB01–03 only.

New files

  • LAB06.md — Full lab guide (~800 lines, 6 parts + stretch + cleanup):

    • Part 1: Crossplane install via Helm + CLI plugin
    • Part 2: Azure provider family + ProviderConfig (reuses LAB03 Service Principal)
    • Part 3: Direct Managed Resource deployment with drift-correction demo
    • Part 4: XRD + Composition — platform abstraction over RG + StorageAccount
    • Part 5: Developer self-service via AppStorageClaim + ArgoCD GitOps loop
    • Part 6 (stretch): GitHub provider demonstrating multi-provider Compositions
  • lab06/crossplane/ — Ready-to-apply manifests:

    File Purpose
    provider-family-azure.yaml Azure family + storage sub-provider
    providerconfig-azure.yaml ProviderConfig referencing SP secret
    managed-resources/resourcegroup.yaml Direct ResourceGroup MR
    managed-resources/storageaccount.yaml Direct StorageAccount MR with RG cross-reference
    composition/xrd.yaml XRD defining AppStorage concept (exposes both XR + Claim CRDs)
    composition/composition.yaml Composition: XAppStorage → RG + SA with field-path patches
    claims/app-storage-claim.yaml Developer-facing AppStorageClaim example
    argocd/argocd-application.yaml ArgoCD Application syncing a crossplane-claims/ Git directory
    stretch/provider-github.yaml GitHub provider + ProviderConfig + example Repository MR
  • lab06/README.md — Directory structure, quick-start commands, cleanup steps.

Updated files

  • README.md — LAB06 added to the Optional Labs section alongside LAB05.

Design

The Composition layer is the pedagogical centrepiece — developers submit a 3-parameter Claim while the platform team owns all Azure-specific complexity:

# What a developer commits to Git:
apiVersion: platform.workshop.io/v1alpha1
kind: AppStorageClaim
metadata:
  name: myapp-storage
  namespace: team-alpha
spec:
  parameters:
    resourceGroupName: rg-alice-crossplane-claim
    storageAccountName: stalicecpclaim
    location: swedencentral
    environment: workshop
  compositionRef:
    name: appstorage-composition

ArgoCD picks this up from Git and Crossplane reconciles it into a ResourceGroup + StorageAccount in Azure.

Copilot AI linked an issue Apr 1, 2026 that may be closed by this pull request
Copilot AI changed the title [WIP] Add optional lab on deploying with Crossplane Add LAB06: Deploying with Crossplane Apr 1, 2026
Copilot AI requested a review from Geertvdc April 1, 2026 09:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

LAB06: Deploying with Crossplane

2 participants